System and method for linking an address

ABSTRACT

A method and a mobile device comprising an address linking module assess a segment of text as comprising an address and create a link. The method comprises: searching a text for a segment of text having at least two character strings satisfying a proximity constraint, each character string being of a different predefined address indicator type; assessing whether or not the segment comprises an address; displaying at least a portion of the text comprising the segment on a display of a mobile device; and if the segment is assessed as comprising an address, including a link for display, the link pointing to at least one application.

TECHNICAL FIELD

This application is related to a system and method for linking anaddress in a message.

BACKGROUND

Position broadcast systems, either terrestrial or satellite based, areused to provide location information to user devices. Examples of suchsystems include: GPS (Global Positioning System), GLONAS, Galileo, andWAAS or extended GPS.

Some mobile devices are now being made with the ability to obtainposition or location information from such systems. For example, manymobile devices have GPS receivers. Applications on such mobile devicesor on servers supporting the mobile devices can integrate the positionalinformation obtained. For example, a mapping application may use theinformation to display a map showing a mobile device's current position.

Many mobile device also have address books stored thereon that containinformation such as street addresses, cities, postal codes, provinces,states, countries and telephone numbers for each entry in the respectiveaddress book.

Within the text of an email or message, users of communication devicesor computers may send messages that include phone numbers, emailaddresses, web addresses. Applications on some devices create hyperlinksfor phone numbers, email addresses and web addresses, so that the usercan click on the link within the message and the device will respond byrespectively either placing a call, opening an email to be sent, openingthe browser to the linked web page.

BRIEF DESCRIPTION OF THE DRAWINGS

Examples of embodiments will now be described in greater detail withreference to the accompanying drawings, in which:

FIG. 1 is a flowchart of a method for hyperlinking an address;

FIG. 2 is a flowchart of a method for assessing that an address isvalid;

FIG. 3A is a flowchart of a method of assessing a block of text ascomprising an address;

FIG. 3B is a state diagram of a method of assessing a segment of text ascomprising an address;

FIG. 4 is a block diagram of elements of a mobile device according toone embodiment;

FIGS. 5A to 5D are screen shots demonstrating implementations ofembodiments; and

FIG. 6 is a block diagram of a mobile device on which the methodsdescribed herein may be executed.

DETAILED DESCRIPTION

A system and method is provided to detect an address within a textmessage, create a link this physical address so that selecting the linkwill result, for example, in the address location being displayed on amap.

In an embodiment, text within a message is searched looking for at least2 character strings that are different “address indicators” to determineif a piece of text is an address. First, the text is searched for astreet number, street prefixes or suffixes (west, north, south, east,etc), street type (Road, Rd., Street, St., Cres, Crescent etc), city,state/province or country name. Depending on which of these “addressindicators” are found within the text and depending on the textsurrounding these address indicators, an assessment of the probabilitythat the text is a valid address is made. If the assessment is that theaddress is valid, a link is created to launch a map corresponding to theaddress text.

To help this assessment, in some embodiments, the address indicators arecross-referenced as appropriate. For example, cities, states andcountries can be cross-referenced such that if a city is found withinthe text with an incorrect country or state, a link will not beproduced. The address indicators, in some embodiments arecross-referenced or associated with each other in a database.

Accordingly, in one aspect, there is provided a method, the methodcomprising: searching a text for a segment of text having at least twocharacter strings satisfying a proximity constraint, each characterstring being of a different predefined address indicator type; assessingwhether or not the segment comprises an address; displaying at least aportion of the text comprising the segment on a display of a mobiledevice; and if the segment is assessed as comprising an address,including a link for display, the link pointing to at least oneapplication.

In another aspect, there is provided a mobile device comprising: areceiver for receiving a message containing text; a user interface fordisplaying the text; a memory for storing the text; an address linkingmodule configured to: search the text for a segment of text having atleast two character strings satisfying a proximity constraint, eachcharacter string being of a different predefined address indicator type;assess whether or not the segment comprises an address; display at leasta portion of the text comprising the segment on a display of a mobiledevice; and if the segment is assessed as comprising an address, includea link for display, the link pointing to at least one application.

In another aspect, there is provided at least one tangible computerreadable medium having computer executable instructions stored thereonthat when executed implement a method, the method comprising: searchinga text for a segment of text having at least two character stringssatisfying a proximity constraint, each character string being of adifferent predefined address indicator type; assessing whether or notthe segment comprises an address; displaying at least a portion of thetext comprising the segment on a display of a mobile device; and if thesegment is assessed as comprising an address, including a link fordisplay, the link pointing to at least one application.

In another aspect, there is provided a method for displaying textcomprising: searching a message text for an address indicator;determining whether a text segment of the message text that contains theaddress indicator comprises an address; and displaying at least aportion of the message text on a display of a mobile device wherein thedisplay of any text segment that is determined to comprise an addressincludes a link pointing to at least one application.

In an embodiment the act of determining whether a segment of textcomprises an address includes having at least two character stringssatisfying a proximity constraint, each character string being ofpredefined address indicator type.

In another embodiment the act of displaying includes providing a visibleindication of the link within the text on the display.

Referring now to FIG. 1, a method will be described. The method startsat step 120, with searching a text for a segment of text having at leasttwo character strings satisfying a proximity constraint, each characterstring being of a different predefined address indicator type.Non-limiting examples of address indicator types include: a number, astreet prefix, a street suffix, a street type, a city name, a state, aprovince, a country, and a postal code. Non-limiting examples ofproximity constraints include: a number within a threshold proximity ofa street prefix; a street prefix within a threshold proximity of astreet type; and a street type within a threshold proximity of a cityname. It is to be understood that the threshold constraint can apply toproximity of any one of the character strings to any other of thecharacter strings.

The text in some embodiments is text received in a message, such as, butnot limited to an email message, an SMS (Short Message Service) message,an instant message or an electronic document.

The next step is assessing whether or not the segment comprises anaddress (step 130). An assessment that the segment comprises an addressis made in some embodiments if the address exists in a database, inother embodiments if least some of the character strings have beenassessed as valid, in other embodiments if a threshold confidence levelor probability that the segment comprises an address has been met. It isto be understood that the examples of how the assessment is made arenon-limiting and other embodiments may be implemented. In one example, avalid address could be one for which the given city does exist withinthe province or state given. In other embodiments, confirmation that thestreet exists within the city is required for to make an assessment thatthe segment comprises an e address. In still other embodiments,confirmation that the number exists for the street given is required.

At step 150, the method continues with displaying at least a portion ofthe text comprising the segment on a display on a mobile device. At step160, if the segment is assessed as comprising an address, a link isincluded for display, the link pointing to at least one application. Insome embodiments, including a link comprises incorporating the link intoa copy of the text. In some embodiments the copy of the text is a localcopy. A non-limiting example of a link is a hyperlink.

In some embodiments, the link is configured to start an application todisplay the address on a map on the display, when selected. For example,the link could be a hyperlink that points to a map application showingthe location of the address on a street map. In some embodiments, thelink is configured to point to an application to present a menu ofoptions related to the address on the display of the mobile device.Non-limiting examples of options that are included in some embodimentsare: adding the address to an address book; indicating a location of theaddress on a map; obtaining directions to the address from anotherlocation; obtaining directions from the address to another location;obtaining a telephone number associated with the address; and obtaininga name of a person or company associated with the address.

The embodiments of the link pointing to a map application and pointingto a menu of options are not mutually exclusive of each other. In someembodiments, the link is configured to point to one application if it isselected using one keystroke or input device and to another applicationif it is selected in a different manner. For example, clicking on athumbwheel could launch the map application and a special function keycould launch the menu of options. In this manner the link can be createdto point to any number of applications.

An exemplary embodiment of the method further comprises obtaininggeocode information for the address for use in the application. Forexample, latitude and longitude corresponding to a street address can beobtained using a geocoding application and provided to a map applicationin order to display the location on the map.

The method, in other embodiments, further comprises starting theapplication upon selection of the link. The link can be activated, forexample, when a user moves a cursor over highlighted text to which thelink is anchored and selects the highlighted text.

In some embodiments, assessing whether or not the segment comprises anaddress comprises first determining if one of the character strings ofone predefined address indicator type in the segment is associated in adatabase with at least another of the character strings of a differentpredefined address indicator type in the segment. If the one characterstring is associated with the other character string in the database,the address is assessed as valid. In other embodiments, at least aportion of the text is validated against an address database. In stillother embodiments, at least two of the character strings of differentpredefined address indictor types are validated against an addressdatabase.

Referring now to FIG. 2, an exemplary embodiment making the assessmentas to whether or not the segment comprises an address will be described.At step 210 the assessment starts with determining a probability thatthe segment comprises a valid address based on a number of characterstrings of different predefined address indicator types within thesegment, a number of character strings of different predefined addressindicator types that are associated in a database and proximities of thecharacter strings to each other. Then at step 220, if the probability isabove a threshold probability, the address is assessed as valid. Forexample, a segment with a number and street prefix with in two words ofeach other and a city name but no indicator associated with the cityname will have a lower probability of being valid in some embodiments,than a segment with a number and a street suffix within two words and acity name and province, where the city name and province are associatedwith each other.

The link can be identified in the text by changing the font of thesegment to indicate the link. Exemplary ways of identifying thehyperlink are with a different colour, different font size, differentfont type, underlining, bold text and italics. In still otherembodiments, the link is identified by inserting a symbol or characterstring into the text indicating the link.

In some embodiments, the method further comprises generating computerexecutable instructions to insert the link into the text and storing thegenerated computer executable instructions on a memory in the mobiledevice.

It is to be understood that the methods described herein can beimplemented in any manner feasible for use in mobile devices.Non-limiting examples include using software, firmware, hardware orcombinations thereof. It is also to be understood that the method stepsin some non-limiting embodiments are executed on the mobile device. Inother embodiments, at least one of the method steps is performed at aserver accessible over a wireless interface. Non-limiting examples ofsteps that can be performed at the server are: searching the text,making the assessment and inserting the link. Furthermore, the methodsteps are not limited to the order presented. They can be performed inany feasible order.

Non-limiting exemplary embodiments of how the method is implementedfollow. Take the following 3 examples of text within a message:

-   -   a) Edmonton BC USA    -   b) 450 March Rd, Kanata, ON, Canada    -   c) 450 March Rd

In example a) although Edmonton, BC and USA are all within the addressindicator list for cities, states and countries, they are not crossreferenced since Edmonton is not in the province/state of BC and BC isnot in the country of USA, therefore this would not be considered anaddress which is correct.

In example b) the street number (450), street type (Rd), City (Kanata),State/Province (ON) and country (Canada) are all address indicators.Furthermore, with a single word between the Street number and StreetSuffix indicates a high probability that this is the Street Name (March)and Kanata, ON, Canada are all cross referenced. So with 5 addressindicators, 3 cross-references and the street number and suffix in anacceptable relative position, this would correctly be assessed as anaddress and a link would be created.

In example c) the street number and street suffix are address indicatorsand are in the correct relative position. This example is on thethreshold which could hyperlink this address (in this case correctly).If the threshold for success is set higher (minimum 3 addressindicators) then this address would not be hyperlinked in this case.

In an exemplary embodiment of the invention, a number is used as atrigger to search for at least two address indicators, or at least twocharacter strings that are of different address indicator types. Ingeneral terms, an address recognizer searches forward in a block of textfrom the number for at least two or more address indicators. Therecognizer aborts searching when the number of words following thetrigger number exceeds certain threshold. Otherwise, it continues tosearch until one of the following conditions is met:

-   -   a. the block of text is assessed as containing all components of        an address. In other words, a confidence level or probability        that the block of text is an address is maximum;    -   b. another number trigger is encountered;    -   c. the number of words that are not address indicators following        the last address indicator exceeds a certain threshold.

Once an arbitrary string is recognized as an address, it is converted toa link. Clicking on this link will provide options such as view theaddress on the map or add it to the Address Book.

An implementation of a method using a number as a trigger will now bedescribed with reference to FIG. 3A. The method starts with searching atext for a number (Step 232). If a number is found, it is a trigger tosearch forward from the number for address indicators (Step 234). If twoor more address indicators are found within a threshold number of wordsof the number, then an assessment that the segment of text including andfollowing the number up to the last address indicator found is anaddress is made (Step 236).

In a non-limiting exemplary embodiment, to minimize false positives, ablock or segment of text comprising a number followed by only twoaddress indicators will only be assessed as an address if the twoaddress indicators are one of the following combinations:

-   -   a street classifier (such as street prefix, street suffix, or        street type) and a major city;    -   a street classifier and a non-abbreviated province/state;    -   a major city and a non-abbreviated country; and    -   a province/state and non-abbreviated country.

Major city can be defined as any one of a group of cities stored in adatabase.

In some embodiments, a link is only included if a threshold confidencelevel that the segment comprises an address pattern is reached.Confidence level, in some embodiments, is quantified with a mathematicmethod. For example, in an implementation, an initial integer value “0”indicates there is not enough information to assess that the segmentcomprises an address. During parsing, positive or negative quantifiedinformation is obtained. For example, if a street type, street prefix orstreet suffix is found a weighted confidence of 5 is added to theconfidence level. If a city name or state/province name from adictionary is found, a weighted confidence of 7 is added. Similarly,weighted confidences can be added for postal code patterns, countrynames, and abbreviations. Once the confidence level reaches a threshold(for example, 15), the segment of text is assessed as an address.

In some embodiments, data required to assess whether a segment of textis an address is stored on the mobile device. To limit the storagerequirement, the data in some embodiments is stored, for example, usinghashcodes. In other embodiments, the data is stored external to themobile device. For example, the data can be stored in a database on aserver. In still other embodiments, data for addresses that are morelikely to appear in text can be stored on the mobile device and a largerdatabase on a server can be accessed if required. For example, if anumber, province and country is found in the data on the mobile devicebut there is no match to a city within the data on the mobile device, asearch of an external database for a city matching a character stringpreceding the province can be conducted.

In an exemplary embodiment, the following is stored on the mobiledevice:

-   -   a list of street prefixes, suffixes and types;    -   a list of major cities, for example, large metropolitan areas        with population over one million, country capitals, state and        province capitals are considered major cities in some        embodiments;    -   a list of states and provinces (in both full and abbreviated        forms); and    -   a list of countries (in both full and abbreviated forms).

In some embodiments, all of the above strings are normalized and storedas dictionaries of hashcodes. Each character string to be compared isnormalized and converted to a hashcode before being compared to addressindicators stored in the database. This allows for fast lookup andefficient use of memory. Comparing a character string to characterstrings in a database requires comparing each character, one characterat a time. Comparing a hashcode is simply determining if one number isequal to another number.

FIG. 3B is a state diagram of an implementation of the method describedwith reference to FIG. 3A. The state diagram has the following states:START 310, 1^(st) LEVEL IDENTIFIED 320, 2^(nd) LEVEL IDENTIFIED 330,3^(rd) LEVEL IDENTIFIED 340, 4^(th) LEVEL IDENTIFIED 350, ABORT 360, andEND 370. The START state 310 is triggered by finding a number in a text.In this implementation, the 1^(st) LEVEL IDENTIFIED state 320 is reachedif a street prefix, suffix or type is found. The 2^(nd) LEVEL IDENTIFIEDstate 330 is reached if a city is found. The 3^(rd) LEVEL IDENTIFIEDstate 340 is reached if a state or province is found. The 4^(th) LEVELIDENTIFIED state 350 is reached if a country or postal code is found.From the START state 310, the method proceeds to any of the other statesdepending on the results of a search forward from the number. After theSTART state 310, if ‘a’ number of words are searched without a hit orfinding an address indicator, the method proceeds to the ABORT state370, where searching is ceased without assessing the text as containingan address. After the 1^(st) LEVEL IDENTIFIED state 320, if ‘b’ numberof words are searched without a hit, the method proceeds to the ABORTstate 360. After the 2^(nd) LEVEL IDENTIFIED state 330, if ‘c’ number ofwords are searched without a hit and the previous state was the STARTstate 310, the method proceeds to the ABORT state. After the 2^(nd)LEVEL IDENTIFIED state 330, if ‘c’ number of words are searched withouta hit and the previous state was the 1^(st) LEVEL IDENTIFIED state 320,the method proceeds to the END state 370, with an assessment that anaddress has been identified. After the 3^(rd) LEVEL IDENTIFIED state340, if ‘d’ number of words are searched without a hit and the previousstate was the START state 310, the method proceeds to the ABORT state360. After the 3^(rd) LEVEL IDENTIFIED state 340, if ‘d’ number of wordsare searched without a hit and the previous state was the 1^(St) LEVELIDENTIFIED 320 or the 2^(nd) LEVEL IDENTIFIED state 330, then the methodproceeds to the END state 370 with an assessment that an address hasbeen identified. At the 4^(th) LEVEL IDENTIFIED state 350, if theprevious state was the START state 310, then the method proceeds to theABORT state 360. After the 4^(th) LEVEL IDENTIFIED state 350, if ‘e’number of words are searched without a hit and the previous state wasthe 2^(nd) LEVEL IDENTIFIED state 330 or the 3^(rd) LEVEL IDENTIFIEDstate 340, then the method proceeds to the END state 370 with anassessment that an address has been identified. In an exemplaryembodiment, the variables are defined as follows:

-   -   a=an arbitrary number that accounts for an address with a        longest envisaged street name (without prefix/suffix), a longest        envisaged city name and a longest envisaged province/state name;    -   b=an arbitrary number that accounts for an address with a        longest envisged street name (with prefix such as Chemin,        Avenue, etc. Most French street-types come before the street        name) and a longest envisaged city name;    -   c=an arbitrary number that accounts for a longest envisaged        province/state name;    -   d=an arbitrary number that accounts for a longest envisaged        country name; and    -   e=an arbitrary number that accounts for a longest postal        code/country name.

Referring now to FIG. 4, a mobile device 400 according to an embodimentwill be described. The mobile device 400 comprises a receiver 410, auser interface 420, a memory 430, and an address linking module 440. Thereceiver 410 is for receiving a message containing text. The userinterface 420 is for displaying the text. The address linking module 440is configured to: search the text for a segment of text having at leasttwo character strings satisfying a proximity constraint, each characterstring being of a different predefined address indicator type; assesswhether or not the segment comprises an address; display at least aportion of the text comprising the segment on a display of a mobiledevice; and if the segment is assessed as comprising an address, includea link for display, the link pointing to at least one application. Theaddress linking module can be implemented using software, hardware,firmware or combinations thereof or in any other manner feasible for usein the mobile device.

In some embodiments of the mobile device, the user interface 420 is adisplay screen, such as an LCD screen or a touch activated screen.

The mobile device of some embodiments further comprises a user inputdevice with which the link can be selected. Non-limiting examples of theuser input device include at least one of a track ball, a thumbwheel, akeypad, a touch activated screen, and a stylus. In some embodiments, theuser input device can be used to move a cursor on a display screen overtext that is highlighted to indicate the link and then activate the linkby clicking on or selecting the highlighted text.

In some embodiments, the mobile device 400 further comprises anelectronic address book to which the module can add the address orupdate an existing entry to reflect the address. For example, once avalid address is verified and the link is created, activating the linkin some embodiments presents the option to add the address to theelectronic address book or to update an existing entry. The mobiledevice 400 in some embodiments is configured to search the address bookfor addresses that match the linked address. If the linked address isnot in the address book, the user can be presented with the option toadd the linked address to the address book. In some embodiments otherinformation related to the address, such as name, phone number or postalcode can be added by the user. In other embodiments, the otherinformation can be obtained from an external database or from aninternet based service that cross-references addresses to otherinformation, such as names, phone numbers, or postal codes. If the otherinformation is obtained from an external resource, an option can bepresented on the user interface 420 to add the obtained informationtogether with the address to the address book. If the address is alreadyin the address book, an option can be presented on the user interface toobtain the other information from the address book, such as a name,phone number or postal code.

FIGS. 5A to 5D are screen shots of possible implementations of themethods described herein on a user interface of a mobile device. FIG. 5Ais a screen shot of an email to a user from a sender, with a messagethat has the text “Meet me at 550 March Rd, Kanata.” As the text of themessage contains a valid address, according to embodiments of themethods described herein, a link, such as a hyperlink, is created usingthe address as a source anchor. The address is highlighted, as shown inFIG. 5B to indicate that a link has been created. If the link isselected by a user, in some embodiments, a map is automaticallydisplayed showing the location of the address, as shown in FIG. 5C. Insome embodiments, the link points to a menu of options. An example ofsuch a menu is shown in the screen shot of FIG. 5D.

In some embodiments, there is provided a tangible computer readablemedium having computer executable instructions stored thereon that whenexecuted implement a method. The method is any method described herein.In some embodiments, the tangible computer readable medium is a memoryon a mobile device. In some embodiments, the instructions are forexecution by a processor on the mobile device.

Referring now to FIG. 6, shown is a block diagram of another mobiledevice 700 that may implement any of the methods described herein. It isto be understood that the mobile device 700 is shown with very specificdetails for example purposes only.

A processing device (a microprocessor 728) is shown schematically ascoupled between a keyboard 714 and a display 726. The microprocessor 728controls operation of the display 726, as well as overall operation ofthe mobile device 700, in response to actuation of keys on the keyboard714 by a user.

The mobile device 700 has a housing that may be elongated vertically, ormay take on other sizes and shapes (including clamshell housingstructures). The keyboard 714 may include a mode selection key, or otherhardware or software for switching between text entry and telephonyentry.

In addition to the microprocessor 728, other parts of the mobile device700 are shown schematically. These include: a communications subsystem770; a short-range communications subsystem 702; the keyboard 714 andthe display 726, along with other input/output devices including a setof LEDS 704, a set of auxiliary I/O devices 706, a serial port 708, aspeaker 711 and a microphone 712; as well as memory devices including aflash memory 716 and a Random Access Memory (RAM) 718; and various otherdevice subsystems 720. The mobile device 700 may have a battery 721 topower the active elements of the mobile device 700. The mobile device700 is in some embodiments a two-way radio frequency (RF) communicationdevice having voice and data communication capabilities. In addition,the mobile device 700 in some embodiments has the capability tocommunicate with other computer systems via the Internet.

Operating system software executed by the microprocessor 728 is in someembodiments stored in a persistent store, such as the flash memory 716,but may be stored in other types of memory devices, such as a read onlymemory (ROM) or similar storage element. In addition, system software,specific device applications, or parts thereof, may be temporarilyloaded into a volatile store, such as the RAM 718. Communication signalsreceived by the mobile device 700 may also be stored to the RAM 718.

The microprocessor 728, in addition to its operating system functions,enables execution of software applications on the mobile device 700. Apredetermined set of software applications that control basic deviceoperations, such as a voice communications module 730A and a datacommunications module 730B, may be installed on the mobile device 700during manufacture. In addition, a personal information manager (PIM)application module 730C may also be installed on the mobile device 700during manufacture. The PIM application is in some embodiments capableof organizing and managing data items, such as e-mail, calendar events,voice mails, appointments, and task items. The PIM application is alsoin some embodiments capable of sending and receiving data items via awireless network 710. In some embodiments, the data items managed by thePIM application are seamlessly integrated, synchronized and updated viathe wireless network 710 with the device user's corresponding data itemsstored or associated with a host computer system.

In addition, a software application to perform an address linkingfunction 730D may be installed. The address linking function 730D mayimplement any of the methods described herein for linking an address.

As well, additional software modules, illustrated as another softwaremodule 730N, may be installed during manufacture.

Communication functions, including data and voice communications, areperformed through the communication subsystem 770, and possibly throughthe short-range communications subsystem 702. The communicationsubsystem 770 includes a receiver 750, a transmitter 752 and one or moreantennas, illustrated as a receive antenna 754 and a transmit antenna756. In addition, the communication subsystem 770 also includes aprocessing module, such as a digital signal processor (DSP) 758, andlocal oscillators (LOs) 760. The specific design and implementation ofthe communication subsystem 770 is dependent upon the communicationnetwork in which the mobile device 700 is intended to operate. Forexample, the communication subsystem 770 of the mobile device 700 may bedesigned to operate with the Mobitex™, DataTAC™ or General Packet RadioService (GPRS) mobile data communication networks and also designed tooperate with any of a variety of voice communication networks, such asAdvanced Mobile Phone Service (AMPS), Time Division Multiple Access(TDMA), Code Division Multiple Access CDMA, Personal CommunicationsService (PCS), Global System for Mobile Communications (GSM), etc. Othertypes of data and voice networks, both separate and integrated, may alsobe utilized with the mobile device 700.

Network access requirements vary depending upon the type ofcommunication system. For example, in the Mobitex™ and DataTAC™networks, mobile devices are registered on the network using a uniquePersonal Identification Number (PIN) associated with each device. InGPRS networks, however, network access is associated with a subscriberor user of a device. A GPRS device therefore requires a subscriberidentity module, commonly referred to as a Subscriber Identity Module(SIM) card, in order to operate on a GPRS network.

When required network registration or activation procedures have beencompleted, the mobile device 700 may send and receive communicationsignals over the communication network 710. Signals received from thecommunication network 710 by the receive antenna 754 are routed to thereceiver 750, which provides for signal amplification, frequency downconversion, filtering, channel selection, etc., and may also provideanalog to digital conversion. Analog-to-digital conversion of thereceived signal allows the DSP 758 to perform more complex communicationfunctions, such as demodulation and decoding. In a similar manner,signals to be transmitted to the network 710 are processed (e.g.,modulated and encoded) by the DSP 758 and are then provided to thetransmitter 752 for digital to analog conversion, frequency upconversion, filtering, amplification and transmission to thecommunication network 710 (or networks) via the transmit antenna 756.

In addition to processing communication signals, the DSP 758 providesfor control of the receiver 750 and the transmitter 752. For example,gains applied to communication signals in the receiver 750 and thetransmitter 752 may be adaptively controlled through automatic gaincontrol algorithms implemented in the DSP 958.

In a data communication mode, a received signal, such as a text messageor web page download, is processed by the communication subsystem 770and is input to the microprocessor 728. The received signal is thenfurther processed by the microprocessor 928 for an output to the display726, or alternatively to some other auxiliary I/O devices 706. A deviceuser may also compose data items, such as e-mail messages, using thekeyboard 714 and/or some other auxiliary I/O device 706, such as atouchpad, a rocker switch, a thumb-wheel, or some other type of inputdevice. The composed data items may then be transmitted over thecommunication network 710 via the communication subsystem 770.

In a voice communication mode, overall operation of the device issubstantially similar to the data communication mode, except thatreceived signals are output to a speaker 711, and signals fortransmission are generated by a microphone 712. Alternative voice oraudio I/O subsystems, such as a voice message recording subsystem, mayalso be implemented on the device 700. In addition, the display 726 mayalso be utilized in voice communication mode, for example, to displaythe identity of a calling party, the duration of a voice call, or othervoice call related information.

The short-range communications subsystem 702 enables communicationbetween the mobile device 700 and other proximate systems or devices,which need not necessarily be similar devices. For example, theshort-range communications subsystem may include an infrared device andassociated circuits and components, or a Bluetooth™ communication moduleto provide for communication with similarly-enabled systems and devices.

What has been described is merely illustrative of the application of theprinciples of methods, modules and devices described herein. Otherarrangements and methods can be implemented by those skilled in the artwithout departing from the spirit and scope of the embodiments.

1. A method for use on a mobile device comprising a display, the methodcomprising on the mobile device: searching a text, wherein saidsearching comprises: finding a number in the text, once the number isfound, searching forward in the text within a predetermined number ofwords of the number, identifying at least two character strings duringsaid search forward, each character string being of a differentpredefined address indicator type, and selecting a segment of the textincluding the number and said at least two character strings; assessingwhether or not the segment comprises an address; displaying the segmenton the display of the mobile device; and if the segment is assessed ascomprising an address, including a link for display, the link pointingto at least one application, wherein searching the text furthercomprises: searching for at least two character strings following anumber and that are a street classifier and a city name from a list ofcity names in a database; and wherein assessing whether or not thesegment comprises an address comprises: determining a probability thatthe segment comprises a valid address based on at least: a number ofcharacter strings of different predefined address indicator types withinthe segment, a number of character strings of different predefinedaddress indicator types within the segment that are cross-referenced ina database, and proximities of the at least two character strings toeach other; and if the probability is above a threshold probability,assessing the address as valid.